/**
 * Created by ZYY on 2016/12/7.
 */
$(function () {
    /*
    * 机器人消息表格数据处理
    * */
    /*解析json数据*/
    var data = [
        {id:1001,message:"问好",action:"说话"},
        {id:1002,message:"走路",action:"行动"},
        {id:1003,message:"转圈",action:"行动"},
        {id:1004,message:"唱歌",action:"说话"},
        {id:1005,message:"讲故事",action:"说话"},
        {id:1006,message:"导航",action:"导航"},
        {id:1007,message:"没机票",action:"网络购物"},
        {id:1008,message:"问天气",action:"导航"},
        {id:1009,message:"问好",action:"说话"},
        {id:1010,message:"向左转",action:"行动"},
        {id:1011,message:"向右转",action:"行动"},
        {id:1012,message:"前进",action:"行动"},
        {id:1013,message:"唱儿歌",action:"说话"},
        {id:1014,message:"讲故事",action:"说话"}
    ];
    //根据编号排序
    function sortId(a,b){
        return a.id-b.id;
    }
    //根据消息内容排序
    function sortMessage(x,y){
        return x.message.localeCompare(y.message);
    }
    //根据行为排序
    function sortAction(m,n) {
        return m.action.localeCompare(n.action);
    }
    showTable(sortId,1,0,data);
    //页面表格数据显示，参数，1：排序方法 2：当前页码 3：加数 4：json数据
    var all_article_page;// 定义一个页码，记录所有当前页码
    function showTable(method,nowpage,addpage,data) {
        $("#page ul").empty();   //清空页码ul列表
        // var url = "./getJson?method=1";
        all_article_page = nowpage + addpage ;// 获得当前页面的页码
        // $.getJSON(url, function (data) {
        /*var id = new Array();
         var message = new Array();
         var action = new Array();*/
        var flag = data.length;
        //  $.each(data.jsonArray, function(index) {
        /*id[flag] = data.jsonArray[index].id;
         message[flag] = data.jsonArray[index].message;
         action[flag] = data.jsonArray[index].action;*/
        //  flag ++;
        //    });
        //分页
        var main_pages = Math.ceil(flag/11);//总页数
        //判断调用此方法时传来的页数
        if(all_article_page <= main_pages && all_article_page > 0){ //页数大于0小于等于最多页数
            all_article_page = nowpage + addpage;
        }else {
            all_article_page = nowpage;  //否则页码不变
        }
        //根据页码，给列表元素数组定下 循环显示的开始值和结束值
        var start = (all_article_page-1) * 11;
        var end = all_article_page * 11 - 1;

        if(end >= flag){
            end = flag;
        }
        var newdata = data;
        //获得排序后的json数据
        newdata.sort(method);
        //从json中循环取出数据，DOM操作写入页面
        // var num = 0;  //数据总条数
        $("#table_view table tbody").empty();
        for(var i = start; i < end; i++){
            var num = i+1;
            //编写表格dom
            var str = '<tr><td>'+num+'</td><td>'+newdata[i].id+'</td><td>'+newdata[i].message+'</td><td>'+newdata[i].action+'</td></tr>';
            //插入页面表格中
            $("#table_view table tbody").append(str);
        }
        //插入页码，并编写页码点击事件
        if(flag>0){
            $("#page ul").append('<li id = "up"><a href="#" aria-label="Previous"> <span aria-hidden="true">&laquo;</span></a></li>');
            var s;
            for(s = 1;s<=main_pages;s++){
                var down_page = '<li><a href="#">'+s+'</a></li>';
                $("#page ul").append(down_page);
            }
            $("#page ul").append('<li id = "next"><a href="#" aria-label="Next"> <span aria-hidden="true">&raquo;</span></a></li>');
            var active_page = all_article_page +1;
            $("#page ul li:nth-child("+active_page+")").addClass("active");
            //页码点击事件
            //上一页
            $("#page ul #up").click(function(){
                showTable(method,nowpage,-1,data);
            })
            //下一页
            $("#page ul #next").click(function(){
                showTable(method,nowpage,1,data);
            })
            //中间 1 2 3……页
            $("#page ul li a").not("#page ul #up a,#page ul #next a").click(function(){
                var value = parseInt($(this).html());
                showTable(method,value,0,data);
            })
        }
        //  });
    }

    //下拉框变化监听事件
    $("#sortType").change(function () {
        var sortType = $("#sortType").val();
        switch(sortType){
            case "编号":showTable(sortId,1,0,data)
                break;
            case "消息内容":showTable(sortMessage,1,0,data)
                break;
            case "行为":showTable(sortAction,1,0,data)
                break;
        }
    });
    //刷新按钮点击事件
    $("#content #table_view #table_center #tb_menu .refresh button").click(function () {
        //应该是重新获取json数据
        showTable(sortId,1,0,data);  //重新加载表格数据
    });
    //模糊搜索点击事件
    $("#search button").click(function () {
        var keyWords = $("#search input").val();
        if(keyWords != null && keyWords !=""){
            searchByWords(keyWords);
        }
    });
    //模糊查询方法，主要方法是判断字符串是否出现在已有数据中
    function searchByWords(keyWords) {
        $("#table_view table tbody").empty();
        var newdata = new Array();
        for(var i=0; i<data.length; i++){
            if (data[i].id.toString().indexOf(keyWords) >= 0){
                newdata.push(data[i]);
            }else if (data[i].message.toString().indexOf(keyWords) >= 0){
                newdata.push(data[i]);
            }else if(data[i].action.toString().indexOf(keyWords) >= 0){
                newdata.push(data[i]);
            }else{}
        }
        showTable(sortId,1,0,newdata);
    }
})